home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / arexx / rexxbgui / testpageslv.rexx < prev    next >
OS/2 REXX Batch file  |  1999-06-14  |  2KB  |  85 lines

  1. /* REXX script for rexxbgui.library: switch pages with listview */
  2.  
  3. if ~show('l','rexxbgui.library') then do
  4.     if ~addlib('rexxbgui.library',0,-30) then do
  5.         exit(20)
  6.     end
  7.     else nop
  8. end
  9. else nop
  10.  
  11. call bguiopen() /* causes error 12 if it did not work */
  12. /* supply a second argument for a '0' return code instead of an ARexx
  13.    error */
  14.  
  15. signal on syntax /* important: bguiclose() MUST be called */
  16. signal on halt
  17. signal on break_c
  18.  
  19. esc='1B'x
  20. lf='0A'x
  21. cr='0D'x
  22. grspace.narrow=-1
  23. grspace.normal=-2
  24. grspace.wide=-3
  25.  
  26. lst.count=20
  27. do i=0 for lst.count
  28.     lst.i='Entry' i+1
  29. end
  30.  
  31. /* using ARexx feature: ,<newline> is translated to nothing */
  32. /* the || are essential - any added space will cause trouble */
  33. /* redefining the same ID makes previous buttons unaccessible */
  34. /* do not redefine winclose etc. */
  35.  
  36. g=bguivgroup(,
  37.     bguiinfo(,
  38.         'info',,'cbARexx-b conversion of bList-b example',
  39.     )||bguilayout(LGO_FixMinHeight,1)||,
  40.     bguihgroup(,
  41.         bguilistview('switcher',,bguilist('pnames','Single-Select','Multi-Select'),'S')||bguilayout(LGO_Weight,10)||,
  42.         bguipages('pages',,
  43.             bguilistview('sslistv',,'LST','D')||,
  44.             bguilistview('mslistv',,'LST','D'),
  45.         ),
  46.     )||,
  47.     bguihgroup(,
  48.         bguivarspace(50)||,
  49.         bguibutton('quit','_Quit')||,
  50.         bguivarspace(50),
  51.     )||bguilayout(LGO_FixMinHeight,1),
  52. ,grspace.normal,grspace.normal)
  53.  
  54. drop pnames.
  55.  
  56. call bguiset(obj.mslistv,,LISTV_MultiSelect,1)
  57. call bguiset(obj.switcher,,LISTV_Select,0)
  58. call bguiaddmap(obj.switcher,obj.pages,LISTV_EntryNumber,PAGE_Active)
  59.  
  60. a=bguiwindow('Listview DragNDrop',g,50,30,,arg(1))
  61.  
  62. if bguiwinopen(a)=0 then bguierror(12)
  63. id=0
  64. do while bguiwinwaitevent(a,'ID')~=id.winclose
  65.     select
  66.         when id=id.winactive then nop
  67.         when id=id.wininactive then nop
  68.         when id=id.quit then leave
  69.         when id=id.winclose then nop
  70.         otherwise nop
  71.     end
  72. end
  73. rc=0
  74.  
  75. syntax:
  76. if rc~=0 then say '+++ ['rc']' errortext(rc) 'at line' sigl
  77. call bguiclose()
  78. exit 0
  79.  
  80. break_c:
  81. halt:
  82. rc=0
  83. say '+++ Break at line' sigl
  84. signal syntax
  85.